// observable：用于创建一个被监测的对象，对象的属性就是应用的状态(state)，这些状态会被转换成响应式数据。
// action：用于显式的声明创建更新 state 状态的方法
import { observable, action } from 'mobx-miniprogram'
import {login} from "../../../common/api/Login/index"
import {setStorageSync} from "../../../utils/storage";

// 使用 observable 创建一个被监测的对象
export const LoginStore = observable({

  // 创建应用状态
  data:{
    username:"",
    password:"",
  },
  handleInput: action(function (e){  
    const key = e.currentTarget.dataset.key; // 获取data-key的值  
    const value = e.detail.value; // 获取输入框的值  
    this.data={
      ...this.data,
      [key]: value // 使用计算属性名来更新对应的数据属性  
    }
  }),
    
  // 使用 action 更新 numA 以及 numB
  user_login: action(function () {
    // 验证输入  
    // 发送请求到服务器  
    // 处理登录结果  
    // 假设你已经有了一个图片文件的路径，这里以静态资源为例  

    const {username,password}=this.data;
    login({username,password}).then(res=>{
      console.log(res);
      const {code,data,message}=res;
      if(code===200 || message==="登陆成功"){
        setStorageSync("user_token",data.user_token);
        wx.navigateTo({
          url: '/pages/index/index',
        })
        wx.showToast({
          title: '登陆成功！'
        })
 
      }
    })
  }),

  // 计算属性，使用 get 修饰符，
  get user() {
    return this.data;
  }

})

